﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Data.SqlClient;

namespace VerdePimienta2._0.Empleados
{
    public partial class EliminarEmpleado : Form
    {
        string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\des_VP.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Documents and Settings\\Chema\\Mis documentos\\Visual Studio 2008\\Projects\\VerdePimienta2.0\\VerdePimienta2.0\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        public EliminarEmpleado()
        {
            InitializeComponent();
        }

        //Carga inicila panel
        private void EliminarEmpleado_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'verdepimientadbDataSet.LlenarCmbEmpleados' table. You can move, or remove it, as needed.
            //this.llenarCmbEmpleadosTableAdapter.Fill(this.verdepimientadbDataSet.LlenarCmbEmpleados);
            //cmbEmpElim.Refresh();

            RellenarComboEmpleados r = new RellenarComboEmpleados();
            r.RellenarComboE(cmbEmpElim);

            cmbEmpElim.SelectedIndex = 0;
        }

        //Inicialización variables globales panel
        bool EmpleadoEliminarEncontrado = false;

        //Botón BUSCAR Empleado
        private void btnBuscarEmpleado_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection conBuscarEmpM = new SqlConnection(constring);
                conBuscarEmpM.Open();
                SqlDataAdapter daBuscarEmpM = new SqlDataAdapter("Select * From Empleados", conBuscarEmpM);
                DataSet dsBuscarEmpM = new DataSet("Empleados");
                daBuscarEmpM.Fill(dsBuscarEmpM, "Empleados");

                if (cmbEmpElim.Text == "")
                {
                    MessageBox.Show("Debe seleccionar un empleado para realizar la búsqueda", "Error búsqueda", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    EmpleadoEliminarEncontrado = false;
                }
                else
                {
                    DataRow[] foundRow = dsBuscarEmpM.Tables["Empleados"].Select("NumUsuario like'" + cmbEmpElim.Text + "%'");
                    txtElimNomEmp.Text = foundRow[0]["Nombre"].ToString();
                    txtElimApeEmp.Text = foundRow[0]["Apellidos"].ToString();
                    txtElimNacEmp.Text = foundRow[0]["Nacionalidad"].ToString();
                    txtElimTlfEmp.Text = foundRow[0]["Telefono"].ToString();
                    txtElimMovEmp.Text = foundRow[0]["Movil"].ToString();
                    txtElimDniEmp.Text = foundRow[0]["Dni"].ToString();
                    txtElimNumUsuEmp.Text = foundRow[0]["NumUsuario"].ToString();
                    EmpleadoEliminarEncontrado = true;
                }
                conBuscarEmpM.Close();
            }
            catch (Exception exc)
            {
                MessageBox.Show("Error en acceso a base de datos.", exc.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        //Botón ELIMINAR Empleado
        private void btnEliminarEmpleado_Click(object sender, EventArgs e)
        {
            DialogResult drEE = MessageBox.Show("¿Está seguro de que quiere eliminar este empleado de la base de datos?", "Eliminar Empleado.", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (drEE == DialogResult.OK)
            {
                try{
                    SqlConnection conBorrarEmp = new SqlConnection(constring);
                    conBorrarEmp.Open();
                    SqlDataAdapter daBE = new SqlDataAdapter("Select * From Empleados", conBorrarEmp);
                    DataSet dsBE = new DataSet("Empleados");
                    daBE.Fill(dsBE, "Empleados");
                    DataTable dtBE = dsBE.Tables["Empelados"];
                    if (cmbEmpElim.Text == "")
                    {
                        MessageBox.Show("Debe seleccionar un empleado para realizar la búsqueda");
                    }
                    else
                    {
                        bool baja = true;
                        //Buscar línea del empleado a borrar
                        DataRow[] foundRowBorrar = dsBE.Tables["Empleados"].Select("NumUsuario like'" + cmbEmpElim.Text + "%'");
                        string id = foundRowBorrar[0]["Id"].ToString();
                        string strSQL = "UPDATE Empleados SET" +
                                     " Baja = '" + baja +
                                     "' WHERE Id = " + id;

                        SqlCommand cmSQL = new SqlCommand(strSQL, conBorrarEmp);
                        cmSQL.ExecuteNonQuery();
                                                
                        conBorrarEmp.Close();
                        MessageBox.Show("La eliminación de empleado se ha realizado con éxito");

                        //Limpiar textbox y cerrar conexión
                        resetForm();
                        Close();                  
                    }
                }
                catch (Exception exc)
                {
                    MessageBox.Show("Error en acceso a base de datos.", exc.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else 
            {
                resetForm();                
            }
        }

        //Función ResetForm
        private void resetForm()
        {
            txtElimNomEmp.Clear();
            txtElimApeEmp.Clear();
            txtElimTlfEmp.Clear();
            txtElimMovEmp.Clear();
            txtElimDniEmp.Clear();
            txtElimNacEmp.Clear();
            txtElimNumUsuEmp.Clear();
            cmbEmpElim.SelectedIndex = -1;
        }
    }
}
